/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.ipartek.formacion.gestformwww.modelo;
import com.ipartek.formacion.gestformwww.modelo.beans.AlumCurso;
import com.ipartek.formacion.gestformwww.modelo.beans.Alumno;
import com.ipartek.formacion.gestformwww.modelo.beans.FiltroAlumno;
import com.ipartek.formacion.gestformwww.modelo.beans.SMSEnvio;
import com.ipartek.formacion.gestformwww.modelo.beans.excepciones.GestorFormacionExcepcion;
import com.ipartek.formacion.gestformwww.modelo.clases.DAOFactory;
import java.util.ArrayList;

/**
 *
 * @author Sara y Aitor
 */
public class ModeloAlumno {
    private DAOFactory factoria = null;

    public ModeloAlumno() {
        factoria = DAOFactory.getDAOFactory(DAOFactory.SQLSERVER);
    }

    //Sara y Alvaro
    public void asignarAlumnos(ArrayList alumnos, int idCurso) throws GestorFormacionExcepcion{
        factoria.getIAlumnoDAO().asignarAlumnos(alumnos, idCurso);
    }

    //Sara y Alvaro
    public int cuentaMatricula(int idAlumno) throws GestorFormacionExcepcion {
        return factoria.getIAlumnoDAO().cuentaMatricula(idAlumno);
    }

    //Sara y Aitor
    public ArrayList cuentaMatricula(ArrayList<Alumno> alumnos) throws GestorFormacionExcepcion {
         return factoria.getIAlumnoDAO().cuentaMatricula(alumnos);
    }

    //Sara y
    public int crearAlumno(Alumno alumno) throws GestorFormacionExcepcion {
        return factoria.getIAlumnoDAO().crearAlumno(alumno);
    }

    //Sara y
    public void eliminarAlumno(int idAlumno, int idCurso) throws GestorFormacionExcepcion {
        factoria.getIAlumnoDAO().eliminarAlumno(idAlumno, idCurso);
    }

    //Sara y
    public void eliminarAlumno(ArrayList<Integer> aidAlumno, int idCurso) throws GestorFormacionExcepcion {
        for (int i:aidAlumno){
            factoria.getIAlumnoDAO().eliminarAlumno(i, idCurso);
        }
    }

    //Sara y Aitor
    public ArrayList<Alumno> listarAlumnos(FiltroAlumno filtro) throws GestorFormacionExcepcion  {
        return factoria.getIAlumnoDAO().listarAlumnos(filtro);
    }

    //Sara y
    public int modificarAlumno(Alumno alumno) throws GestorFormacionExcepcion {
        return factoria.getIAlumnoDAO().modificarAlumno(alumno);
    }

    //Sara y Alvaro
    public Alumno visualizarAlumno(int idAlumno, int idCurso) throws GestorFormacionExcepcion {
        return factoria.getIAlumnoDAO().visualizarAlumno(idAlumno, idCurso);
    }

    //Sara y Alvaro
    public AlumCurso buscarAlumCurso(int idAlumno, int IdCurso) throws GestorFormacionExcepcion {
        return factoria.getIAlumCursoDAO().buscarAlumCurso(idAlumno, IdCurso);
    }

     public ArrayList<SMSEnvio> listarSMS(){
        return factoria.getIAlumnoDAO().listarSMS();
    }

     public int contarAlumnos(FiltroAlumno filtro) throws GestorFormacionExcepcion{
         return factoria.getIAlumnoDAO().contarAlumnos(filtro);
     }

    
}
